#ifndef __GE_FRAME_H__
#define __GE_FRAME_H__

#include "GE_Base.h"

namespace Syp
{
	///GuiBase is the base class from which all GUI components inherit from.It contains basic functionality required by all GUI Components to function.
	class SYPAPI Frame : public GuiBase
	{
	public:
		///Creates a Frame and returns a pointer to it.
        static Frame* createFrame(const String& name,float Width, float Height);
		///The following are virtual functions which can be overloaded to define what happens when triggered for all objects of the class type. 
			
		//Defines what should always happen to the component of that type onMouseOut
		virtual void mouseMove(const MouseState & ms);
		
		//Defines what should always happen to the component of that type onMouseUp
		virtual void mouseLeftUp();
		virtual void mouseLeftDown();
		//virtual void mouseRightUp(){};
		///Returns a pointer to a Label for the Title
		Label* getTitle();
	protected:
		virtual void genMesh();
		Frame(const String& name,float Width, float Height);
		~Frame();			
		bool beingMoved;
		

	private:
		Label* title;
	

	};

}

#endif //__GE_FRAME_H__
